package com.gxa.pingan.mapper;

import com.gxa.pingan.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author ChenJin
 * @date 2021/10/25 14:48
 * Description:
 **/
public interface UserMapper {
    /**
     * 通过id寻找用户
     * @param id 用户的id
     * @return 用户对象
     */
    Map<String,Object> selectById(Long id);

    /**
     * 根据id删除用户
     * @param id 用户编号
     */
    void deleteById(Long id);

    /**
     * 添加用户
     * @param user
     */
    void addUser(Map<String,Object> user);

    /**
     * 获取全部用户
     * @return
     */
    List<User> getList();

    /**
     * 分页获取全部用户信息
     * @param offset
     * @param size
     * @return
     */
    List<User> getListByPage(Integer offset,Integer size);

    /**
     * 修改用户信息
     * @param user
     */
    void update(Map<String,Object> user);

    /**
     * 根据电话查找
     * @param phone 电话号码
     * @return
     */
    User selectByPhone(String phone);

    /**
     * 通过姓名或者手机号模糊查询用户列表
     * @param value 姓名或手机号的值
     * @return
     */
    List<User> getSearch(String value);

    /**
     * 通过姓名或者手机号分页模糊查询用户列表
     * @param value 姓名或手机号的值
     * @param offset 偏移量
     * @param size 每页大小
     * @return 返回用户列表
     */
    List<User> getSearchByPage(@Param("value")String value,@Param("offset")Integer offset, @Param("size")Integer size);

    /**
     * 根据身份证号码查询
     * @param idCard
     * @return
     */
    User selectByIdCard(String idCard);

    /**
     * 添加用户
     * @param user
     */
    void add(User user);

}
